Những ngày đầu của phần mềm máy tính (1948–1979) Lịch_sử_phần_mềm

Trong bản thảo của mình "Lý thuyết toán học về giao tiếp", Claude Shannon (1916–2001) đã đưa ra một phác thảo về cách logic nhị phân có thể được triển khai để lập trình máy tính. Sau đó, các lập trình viên máy tính đầu tiên sử dụng mã nhị phân để hướng dẫn máy tính thực hiện các tác vụ khác nhau. Tuy nhiên, quá trình này rất gian khổ. Các nhà lập trình máy tính phải cung cấp các chuỗi mã nhị phân dài để cho máy tính biết dữ liệu nào cần lưu trữ. Mã và dữ liệu phải được tải vào máy tính bằng nhiều cơ chế tẻ nhạt khác nhau, bao gồm thao tác vặn công tắc hoặc đục lỗ tại các vị trí xác định trước trong thẻ và tải những thẻ đục lỗ này vào máy tính. Với những phương pháp như vậy, nếu sai sót, toàn bộ chương trình có thể phải được tải lại từ đầu.

Lần đầu tiên một máy tính chương trình lưu trữ giữ một phần mềm trong bộ nhớ điện tử và thực thi nó thành công, là 11 giờ sáng ngày 21 tháng 6 năm 1948, tại Đại học Manchester, trên máy tính Manchester Baby. Nó được viết bởi Tom Kilburn và tính hệ số cao nhất của số nguyên 2^18 = 262,144. Bắt đầu với một số chia thử lớn, nó thực hiện phép chia với số bị chia 262,144 bằng phép trừ lặp đi lặp lại, sau đó kiểm tra xem phần dư có bằng không hay không. Nếu không, nó giảm ước số thử nghiệm đi một và lặp lại quá trình. Google đã tôn vinh Manchester Baby, kỷ niệm nó là "sự ra đời của phần mềm". Vào cuối những năm 1950 và đầu những năm 1960, một sự đổi mới phổ biến là sự phát triển của các ngôn ngữ máy tính như Fortran, COBOLBASIC. Những ngôn ngữ này cho phép các chương trình được chỉ định một cách trừu tượng, không phụ thuộc vào các chi tiết chính xác của kiến trúc phần cứng của máy tính. Các ngôn ngữ này chủ yếu chỉ nhằm mục đích xác định các phép tính số.[17]

COBOL được hình thành lần đầu tiên khi Mary K. Hawes triệu tập một cuộc họp (bao gồm cả Grace Hopper) vào năm 1959 để thảo luận về cách tạo ra một ngôn ngữ máy tính để chia sẻ giữa các doanh nghiệp.[15] Sự đổi mới của Hopper với COBOL đang phát triển một cách biểu tượng mới để viết chương trình.[12] Chương trình của cô là tài liệu tự ghi lại.[18] Betty Holberton đã giúp chỉnh sửa ngôn ngữ được nộp cho Văn phòng In ấn Chính phủ vào năm 1960.[19] FORMAC được phát triển bởi Jean E. Sammet vào những năm 1960.[19] Cuốn sách của cô, Programming Languages: History and Fundamentals (1969), đã trở thành một văn bản gây ảnh hưởng lớn.[19] [20]

Chương trình Apollo

Margaret Hamilton bên cạnh một chồng mã nguồn mà cô và nhóm của mình đã viết cho các máy tính của Sứ mệnh Apollo.

Chương trình Apollo lên Mặt Trăng phụ thuộc vào phần mềm để lập trình máy tính trong các mô-đun hạ cánh.[21][22] Các máy tính được lập trình bằng một ngôn ngữ gọi là "Basic" (không có quan hệ gì với ngôn ngữ lập trình BASIC được phát triển tại Dartmouth cùng thời điểm).[23] Phần mềm cũng có một trình thông dịch được tạo thành từ một loạt các quy trình và một trình điều hành (giống như một hệ điều hành hiện đại), chỉ định chương trình nào sẽ chạy và khi nào.[23] Cả hai đều được thiết kế bởi Hal Laning.[23] Margaret Hamilton, người trước đây đã liên quan đến các vấn đề về độ tin cậy của phần mềm khi làm việc trên hệ thống phòng không SAGE của Hoa Kỳ, cũng là một phần của nhóm phần mềm Apollo.[21][24] Hamilton phụ trách phần mềm bay trên máy bay cho các máy tính Apollo.[21] Hamilton cảm thấy rằng các hoạt động phần mềm không chỉ là một phần của cỗ máy mà còn có sự tham gia phức tạp của những người vận hành phần mềm.[23] Hamilton cũng là người đặt ra thuật ngữ " kỹ thuật phần mềm " khi cô đang làm việc tại NASA.[25]

"Phần mềm" thực tế cho các máy tính trong chương trình Apollo được tạo thành từ các sợi dây được luồn qua các lõi từ tính.[26] Việc dây đi qua lõi từ, đại diện cho "1" và việc dây đi quanh lõi, đại diện cho "0." [26] Mỗi lõi lưu trữ 64 bit thông tin.[26] Hamilton và những người khác sẽ tạo ra phần mềm này bằng cách đục lỗ trên thẻ đục lỗ, sau đó được xử lý trên máy tính lớn Honeywell nơi phần mềm có thể được mô phỏng.[21] Khi mã "rắn", sau đó nó được gửi để dệt vào các lõi từ tính tại Raytheon, nơi những người phụ nữ được gọi là "Little Old Ladies" làm việc trên dây.[21] Bản thân chương trình là "không thể phá hủy" và thậm chí có thể chịu được các tia sét, điều đã xảy ra với Apollo 12.[26] Việc nối dây các máy tính mất vài tuần để thực hiện, việc phát triển phần mềm bị đóng băng trong thời gian đó.[27]

Trong khi sử dụng trình mô phỏng để kiểm tra chương trình, Hamilton đã phát hiện ra những cách mà mã nguồn có thể tạo ra các lỗi nguy hiểm khi con người mắc lỗi trong khi sử dụng nó.[21] NASA tin rằng các phi hành gia sẽ không mắc sai lầm do quá trình đào tạo của họ.[28] Hamilton không được phép lập trình mã nguồn để ngăn các lỗi dẫn đến sự cố hệ thống, vì vậy cô đã chú thích mã trong tài liệu chương trình.[21] Ý tưởng của cô ấy để thêm mã kiểm tra lỗi đã bị từ chối vì lý do "quá mức".[21] Tuy nhiên, những gì Hamilton dự đoán đã xảy ra trên chuyến bay Apollo 8, khi lỗi của con người khiến máy tính xóa sạch toàn bộ dữ liệu điều hướng.[21]

Đóng gói phần mềm với phần cứng và các vấn đề pháp lý của nó

Sau đó, phần mềm được bán cho nhiều khách hàng bằng cách đóng gói kèm với phần cứng bởi các nhà sản xuất thiết bị gốc (OEM) như Data General, Digital Equipment và IBM. Khi một khách hàng mua một máy tính mini, lúc đó là máy tính nhỏ nhất trên thị trường, máy tính này không được cài đặt sẵn phần mềm mà cần phải được cài đặt bởi các kỹ sư do OEM thuê.[cần dẫn nguồn]

Việc đóng gói này thu hút sự chú ý của các cơ quan quản lý chống độc quyền của Hoa Kỳ, những người đã kiện IBM về việc "buộc" không đúng cách vào năm 1969, cáo buộc rằng đó là vi phạm chống độc quyền mà khách hàng muốn có được phần mềm của họ cũng phải mua hoặc thuê phần cứng của họ để làm như vậy. Tuy nhiên, vụ kiện đã bị Bộ Tư pháp Hoa Kỳ loại bỏ, sau nhiều năm, với kết luận là "không có cơ sở".[29]

Data General cũng gặp phải các vấn đề pháp lý liên quan đến việc đóng gói – mặc dù trong trường hợp này, đó là do một vụ kiện dân sự từ một đối thủ sẽ là đối thủ. Khi Data General giới thiệu Data General Nova, một công ty tên là Digidyne muốn sử dụng hệ điều hành RDOS trên bản sao phần cứng của riêng mình. Data General từ chối cấp phép phần mềm của họ và yêu cầu "quyền đóng gói" của họ. Tòa án Tối cao Hoa Kỳ đặt ra một tiền lệ có tên là Digidyne v. Data General vào năm 1985 bằng cách để phán quyết của tòa án kháng cáo vòng 9 về vụ kiện, và Data General cuối cùng đã bị buộc phải cấp phép cho hệ điều hành vì người ta phán quyết rằng việc hạn chế giấy phép chỉ cho phần cứng DG là một thỏa thuận ràng buộc bất hợp pháp.[30] Mặc dù Tòa án quận lưu ý rằng "không có hội thẩm hợp lý nào có thể nhận thấy rằng trong thị trường rộng lớn và năng động với nhiều đối thủ cạnh tranh lớn hơn", Data General "có sức mạnh thị trường để hạn chế thương mại thông qua một thỏa thuận ràng buộc bất hợp pháp", ràng buộc hoạt động hệ thống phần cứng được cai trị như là bất hợp pháp sau khi kháng cáo.[31]

Vào năm 2008, Psystar Corporation đã bị Apple Inc. kiện vì đã phân phối các bản sao Macintosh trái phép có cài sẵn OS X và bị phản đối. Một trong những lập luận trong bộ phản đối - trích dẫn trường hợp Data General - là Apple thống trị thị trường máy tính tương thích OS X bằng cách gắn hệ điều hành này vào máy tính Apple một cách bất hợp pháp. Thẩm phán Tòa án quận William Alsup đã bác bỏ lập luận này, nói rằng, như Tòa án quận đã phán quyết trong vụ Data General hơn 20 năm trước, rằng thị trường liên quan không chỉ đơn giản là một hệ điều hành (Mac OS) mà là tất cả các hệ điều hành PC, bao gồm cả Mac OS và lưu ý rằng Mac OS không có vị trí thống trị trong thị trường rộng lớn hơn đó. Phán quyết của Alsup cũng lưu ý rằng tiền lệ Data General đáng ngạc nhiên rằng việc buộc các sản phẩm có bản quyền luôn là bất hợp pháp kể từ đó đã bị phán quyết trong vụ kiện Illinois Tool Works Inc. v. Independent Ink, Inc. [32]

Phần mềm đóng gói (Cuối những năm 1960 đến nay)

Một ngành công nghiệp sản xuất phần mềm đóng gói độc lập - phần mềm không được sản xuất "dùng một lần" cho một khách hàng cá nhân, cũng không "đi kèm" với phần cứng máy tính - bắt đầu phát triển vào cuối những năm 1960.[33]

Unix (những năm 1970 – nay)

Unix là một hệ điều hành ban đầu đã trở nên phổ biến và có ảnh hưởng rất lớn, và vẫn tồn tại cho đến ngày nay. Biến thể phổ biến nhất của Unix ngày nay là macOS (trước đây được gọi là OS X và Mac OS X), trong khi Linux có liên quan chặt chẽ với Unix.

Sự phát triển của máy vi tính

Vào tháng 1 năm 1975, Micro Instrumentation and Telemetry Systems bắt đầu bán bộ vi máy tính Altair 8800 của mình theo đơn đặt hàng qua thư. Microsoft đã phát hành sản phẩm đầu tiên của mình là Altair BASIC vào cuối năm đó và những người có sở thích bắt đầu phát triển các chương trình để chạy trên những bộ dụng cụ này. Tiny BASIC đã được xuất bản dưới dạng một chương trình nhập liệu trên Tạp chí của Tiến sĩ Dobb, và được hợp tác phát triển.

Ví dụ, vào năm 1976, Peter R. Jennings đã tạo ra chương trình Microchess của mình cho bộ công cụ KIM-1 của MOS Technology, nhưng vì nó không đi kèm với ổ băng, ông sẽ gửi mã nguồn trong một tập sách nhỏ cho khách hàng đặt hàng qua thư của mình., và họ sẽ phải gõ toàn bộ chương trình bằng tay. Năm 1978, Kathe và Dan Spracklen phát hành nguồn chương trình Sargon (cờ vua) của họ trên một tạp chí máy tính. Jennings sau đó chuyển sang bán băng giấy, và cuối cùng là băng cassette nhỏ gọn với chương trình trên đó.

Việc nhập mã nguồn từ tạp chí máy tính là một quá trình bất tiện và chậm chạp, và một lần gõ sai – hoặc tệ hơn, in sai – ký tự có thể làm cho chương trình không hoạt động được, nhưng mọi người vẫn làm như vậy. (Công nghệ nhận dạng ký tự quang học, về mặt lý thuyết có thể được sử dụng để quét trong danh sách thay vì sao chép chúng bằng tay, vẫn chưa được sử dụng rộng rãi.)

Ngay cả với sự phổ biến của catridge và băng cassette trong những năm 1980 để phân phối phần mềm thương mại, các chương trình miễn phí (chẳng hạn như các chương trình giáo dục đơn giản nhằm mục đích dạy kỹ thuật lập trình) vẫn thường được in ra, vì nó rẻ hơn việc làm và gắn băng cassette vào tạp chí thời sự.

Tuy nhiên, cuối cùng sự kết hợp của bốn yếu tố đã đưa việc in danh sách mã nguồn hoàn chỉnh của toàn bộ các chương trình trên tạp chí máy tính đến hồi kết thúc:

  • các chương trình bắt đầu trở nên rất lớn
  • đĩa mềm bắt đầu được sử dụng để phân phối phần mềm, và sau đó đã giảm giá
  • những người bình thường bắt đầu sử dụng máy tính – và muốn một cách đơn giản để chạy một chương trình
  • tạp chí máy tính bắt đầu bao gồm băng cassette hoặc đĩa mềm với các phiên bản phần mềm miễn phí hoặc dùng thử trên đó

Rất nhanh chóng, phần mềm thương mại bắt đầu bị vi phạm bản quyền, và các nhà sản xuất phần mềm thương mại rất không hài lòng về điều này. Bill Gates, người đồng sáng lập Microsoft, là người sớm có đạo đức chống vi phạm bản quyền phần mềm với Thư ngỏ gửi những người dùng máy tính nghiệp du, nổi tiếng vào năm 1976.[34]